Conventionally, demands for performing various processes and edits on digital contents for secondary use are attainable only by contents creators or distributors, such as broadcasting stations. With the advancement of recent digital technologies, however, the quality and quantity of digital distribution systems as an infrastructure are increasing day by day. That is to say, improved transport streams for providing digital contents, improved capability of hardware required for user's processing, and reduced cost incurred therefor are fulfilling environmental conditions required at the user side to enjoy performing editing processes of editing transport streams and pieces of packet data composing these transport streams. Such processes used to be possible only by facilities, such as broadcasting stations.
In order for the user side to perform a desired process on each digital content, however, a means is required for allowing access from a processing means which selects, on a real-time basis, the packet data composing sequentially-input transport streams to perform a task or a process on the selected packet data.
As one example of such a means, a conventionally implemented apparatus having a function of individually identifying the pieces of packet data composing a transport stream and selectively extracting those pieces is illustrated in FIG. 41. The transport stream decoder illustrated in the drawing extracts only a group of packet data that composes a single specific program from a single transport stream composed of packet data strings that form a plurality of programs, and outputs the extracted group to an AV decoder. That is, as described further below, the transport stream decoder is provided with a means for selectively extracting only a specific piece(s) of packet data from the plurality of pieces of packet data that compose a single transport stream.
The transport stream decoder TDAc includes a stream input unit 500C for receiving a transport stream TS supplied by an external transport stream source (not shown), a program packet filter PCF, a main memory controller 700C, a main memory 900C, and a TD controller TDCc for controlling the operation of the entire transport stream decoder TDCc.
Referring back to FIG. 41, components of the transport stream decoder TDAc are respectively described. The stream input unit 500C temporarily retains, in an input buffer incorporated therein, transport streams TS supplied by the external transport stream source (not shown), and then transfers them to the program packet filter PCF in units of transfer TSd.
The program packet filter PCF includes at least three packet filters: a packet filter 1100_00 for selectively outputting only management packet data PcA; a packet filter 1100_01 for selectively outputting only program video content packet data PcV of a specific program; and a packet filter 1100_02 for selectively outputting only program audio content packet data PcS of the specific program. These packet filters perform outputs of data based on packet identifiers PID provided to all pieces of program content packet data Pc transferred in units of transfer TSd from the stream input unit 500C. Note herein that the management packet data PcA and the program content packet data Pc (PcV, PcS) that compose a specific program and are extracted from all pieces of packet data P contained in the input transport stream TS are collectively referred to as a selected single program packet data string Pes.
As stated above, when packet filters of three types included in the program packet filter PCF have to be respectively identified as the one for extracting the management packet data PcA, the one for extracting the program video content packet data PcV, and the one for extracting the program audio content packet data PcS, they are denoted as the management packet filter 1100_00, the video packet filter 1100_01, and the audio packet filter 1100_02, respectively. When they do not have to be identified or are collectively referred to, they are denoted simply as packet filters 1100.
The program packet filter PCF is provided according to the number of content types γ (γ is a natural number) composing a program to be extracted. That is, based on the number of types of the program content packet data Pc to be extracted, packet filters 1100_01 to 1100_0γ and one management packet filter 1100_00 for extracting the management packet data PcA from the transport stream TS are provided. In short, γ+1 packet filters 1100_00 to 1100_0γ are provided. For convenience in description, described in the present example is a case where only three types of packet filters are provided: the management packet filter 1100_00, the video packet filter 1100_01, and the audio packet filter 1100_02.
From the pieces of program content packet data Pc that compose a plurality of programs contained in the transport stream TS, the management packet data PcA (PAT, PMT1, PMT2, and PMT3), and video packet data PcV (Pc101_1, Pc101_2, . . . ) and audio packet data PcS (Pc111_1, Pc111_2, . . . ) composing program 1 are extracted by the video packet filter 1100_01 and the audio packet filter 1100_02 in the order in which they arrived at the transport stream decoder TDAc.
Then, the extracted program content management table PAT, program content packet data management tables PMT1, PMT2, and PMT3, and program content packet data Pc101_1, Pc111_1, Pc101_2, Pc111_2, . . . are output as a selected single program packet data string Pes to the main memory controller 700C in the order in which they arrived at the transport stream decoder TDAc. As such, the program packet filter PCF has a function of individually identifying the pieces of packet data of the input transport stream TS on a real-time basis and selectively extracting these pieces.
The main memory controller 700C temporarily retains, in units of transfer TSd, the selected single program packet data string Pes supplied by the program packet filter PCF. The main memory controller 700C also controls the main memory 900C so that the management packet data PcA, a single program video content packet data string PssV, and a single program audio content packet data string PssS are respectively stored in predetermined areas of the main memory 900C.
In other words, the main memory 900C identifies each piece of packet data P contained in the selected single program packet data string Pes supplied by the program packet filter PCF through the main memory controller 700C as any one of the management packet data PcA, the program video packet data PcV, and the program audio packet data PcS, and then stores those pieces of packet data as the management packet data PcA, the single program video content packet data string PssV, and the single program audio content packet data string PssS.
Moreover, the main memory controller 700C reads the single program video content packet data string PssV and the single program audio content packet data string PssS from the main memory 900C, temporarily retains them in units of transfer TSd, and then outputs them as a single program packet data string Pss to an external device typified by an AV decoder 2000C.
Note that the transport stream decoder TDAc generates a state signal SrWC indicative of the state of operation of each of the above-described components for output to the TD controller TDCc. Based on the state signal SrWC, the TD controller TDCc generates a control signal ScWC for controlling the operation of each component of the transport stream decoder TDAc for output to the transport stream decoder TDAc.
As such, the TD controller TDCc controls the entire operation of the transport stream decoder TDAc for extracting, from the single transport stream TS supplied to the transport stream decoder TDAc, only the pieces of program content packet data Pc composing a single program in the order in which they arrived, and outputting the extracted data as the single program packet data string Pss to the external device, such as the AV decoder 2000C. The AV decoder 2000C sequentially decodes the program video content packet data PcV and the program audio content packet data PcS contained in the input single program packet data string Pss to generate a video/audio signal Sav for viewing by users.
Illustrated in FIG. 43 is an example of the selected single program packet data string Pes composed of the program content packet data Pc (the video packet data PcV and the audio packet data PcS) and the management packet data PcA (PAT and PMT) extracted from three programs contained in the single transport stream TS having the packet structure shown in FIG. 42.
In this example, only the program content packet data Pc101_1, Pc111_1, Pc101_2, Pc111_2, . . . for Program 1 and their program content management tables PAT, and the program content packet data management table PMT1 are extracted as the extracted packet data string Pse, and are then output from the program packet filter PCF to the main memory controller 700C.
In some cases, program content packet data management tables PMT2 and PMT3 indicative of Program 2 and Program 3, which are those other than a designated program, may be extracted. As described above, from the pieces of packet data P sequentially arranged on the input transport stream TS, only the packet data P corresponding to the designated program is discretely extracted.
Illustrated in FIG. 44 is an example of how each piece of program content packet data Pc contained in the selected single program packet data string Pes is stored in the main memory 900C. The main memory 900C has a video packet storage area A(video) for storing program content packet data Pc101_1, Pc101_2, Pc101_3, Pc101_4, . . . , which are the program video content packet data PcV, and an audio packet storage area A(audio) for storing program audio content packet data Pc111_1, Pc111_2, Pc111_3, Pc111_4, . . . , which are the program audio content packet data PcS.
For storing the components of the management packet data PcA, further provided are a PAT storage area A(PAT) for storing information about the program content management table PAT, and PMT storage areas A(PMT α) for storing information about the program content packet data management tables PMT. Specifically, the program content packet data management table PMT1 of Program 1 is stored in a storage area A(PMT1) for a program content packet data management table PMT.
The program content packet data Pc101_1, Pc101_2, Pc101_3, Pc101_4, . . . , which are program video content packet data PcV, are successively stored in the video packet storage area A(Video), thereby forming a single program video content packet data string PssV. Similarly, the program content packet data Pc111_1, Pc111_2, Pc111_3, Pc111_4, . . . , which are program audio content packet data PcS, are successively stored in the audio packet storage area A(audio), thereby forming a single program audio content packet data string PssS.
As such, the single program video content packet data string PssV and the single program audio content packet data string PssS that are formed in the main memory 900C are read by the main memory controller 700C as the single program packet data string Pss as exemplarily illustrated in FIG. 45, and then output to the AV decoder 2000C.
Although transport streams are assumed to be known in general, transport streams in the present specification are described below with reference to FIG. 42. A single transport stream TS supplied to the transport stream decoder TDAc is now described. The transport stream TS is composed of a plurality of pieces of packet data P, each illustrated as one frame in FIG. 42. Each of these pieces of packet data P is provided with a unique packet identifier (Packet ID) PID for identification. Also, these pieces of packet data P are structured in a format uniquely defined by the transport stream TS.
These pieces of packet data Pare classified into: a plurality of pieces of program content packet data Pc forming the contents of the programs of α types (α is an integer of 2 or more); program content packet data management tables (Program Map Table) PMT containing packet identifiers PID of these pieces of program content packet data Pc for each program; a program content management table (Program Association Table) PAT containing the program content packet data management tables PMT correspondingly to the programs, and others.
These program content management table PAT and program content packet data management tables PMT having information for managing the pieces of program content packet data Pc are collectively referred to as management packet data PcA. Note that FIG. 42 exemplarily illustrates the structure of the transport stream TS when at least three different programs, program 1, program 2, and program 3, are provided (α≧3).
The program content packet data Pc101_1, Pc101_2, . . . are video data for Program 1, while the program content packet data Pc111_1, Pc111_2, . . . are audio data for Program 1. Similarly, the program content packet data Pc201_1, Pc201_2, . . . are video data for Program 2, while the program content packet data Pc211_1, Pc211_2, . . . are audio data for Program 2.
Furthermore, program content packet data Pc301_1, Pc301_2, . . . are video data for Program 3, while the program content packet data Pc311_1, Pc311_2, . . . are audio data for Program 3. As described above, the program content packet data containing video data is generally referred to as program video content packet data PcV, while the program content packet data containing audio data is generally referred to as program audio content packet data PcS.
Note that, needless to say, the number of distributed programs (α) is not restricted to three. The transport stream TS contains pieces of program content packet data Pc as much as they are required correspondingly to the number of programs to be distributed. Furthermore, depending on the contents of the programs, program content packet data Pc corresponding to information other than video and audio (character information, for example) can be also contained.
Further in detail, the transport stream TS is structured so that the program content management table PAT and the program content packet data management table PMT are arranged between pieces of the program content packet data Pc at a frequency defined by factors, such as a transmission path and processing. In FIG. 42, the plurality of pieces of program content packet data Pc forming a total of three types of programs, Program 1, 2, 3, include the program content packet data Pc101_1, Pc111_1, Pc201_1, Pc211_1, Pc301_1 and Pc311_1 that are preceded by the management packet data PcA, which is composed of: program content packet data management tables PMT1, PMT2, PMT3 each having the packet identifiers PID of the pieces of program content packet data Pc forming the corresponding program; and a program content management table PAT indicative of programs corresponding to the packet identifiers PID of these program content packet data management tables PMT.
Note that, in the present specification, the same components or signals are provided with a common reference numeral or an alphabetical character as an identifier. When the respective components or signals are required to be identified, the above identifier further comes with a numerical or alphabetical suffix. Therefore, when the respective components or signals are not required to be identified, the above identifier does not come with any suffix. Specifically, the program content packet data Pc101 is a common name for the program content packet data Pc101_1, Pc101_2, . . . , Pc101_β (β is an arbitrary natural number). The same goes for the program content packet data Pc111, Pc201, Pc211, Pc301, and Pc401.
The program content management table PAT describes the packet identifiers PID of the program content packet data management tables PMT for all programs contained in the transport stream TS. That is, it describes as follows: the packet identifier PID of the program content packet data management table PMT for Program 1 is 100; the packet identifier PID of the program content packet data management table PMT for Program 2 is 200; the packet identifier PID of the program content packet data management table PMT for Program 3 is 300; . . . , and the packet identifier PID of the program content packet data management table PMT for Program α is α00.
Furthermore, the program content packet data Pc101_2, Pc111_2, Pc201_2, Pc211_2, Pc301_2, and Pc311_2 are preceded by the management packet data PcA, which is composed of the above-described program content packet data management tables PMT1, PMT2, and PMT3 and the program content management table PAT. Note that, needless to say, although FIG. 42 does not illustrate a case where the transport stream TS contains four or more programs (α≧4), the management packet data PcA can contain the program content packet data management tables PMT4 through PMTα, and the transport stream TS can contain the program content packet data Pc corresponding to each program.
How frequently the management packet data PcA appears greatly varies depending upon the type of packet data P contained in the transport stream TS. Moreover, the management packet data PcA does not have to be placed at the head of a collection of pieces of packet data P as exemplarily illustrated in FIG. 42. In some cases, the program content management table PAT and the program content packet data management tables PMT, which together compose the management packet data PcA, and the program content packet data Pc may have another piece of packet data P randomly inserted thereamong.
The above-structured conventional transport stream decoder is sufficient for the purpose of reproducing only a single program from a single input transport stream for presentation to users. This is because all the AV decoder has to do is to sequentially decode the pieces of packet data P in the order in which they arrive, these pieces of data being contained in the single program content packet data string Pss composing the single input program.
Furthermore, all these pieces of packet data Pare Ian format unique to the single input transport stream, and therefore they are just decoded based on the same format. However, the above transport stream decoder cannot support the following three general types of program reproduction irrespectively of whether the reproduced program is also presented to users.
(Reproduction Type 1)
Only a single transport stream is allowed to be inputted, that is, only a single stream input unit is provided. From the transport stream, a plurality of programs are to be simultaneously reproduced.
(Reproduction Type 2)
A plurality of transport streams are allowed to be inputted. That is, each of the input transport streams is structured by pieces of packet data formed in its uniquely defined format. This reproduction type is further classified into the following six types 2-1 to 2-6, irrespectively of whether the number of simultaneously-input transport streams is single or plural.
Type 2-1: Only a single program is to be reproduced from each of the transport streams.
Type 2-2: A plurality of programs are to be simultaneously reproduced from each of the transport streams.
Type 2-3: Only a single program is to be reproduced from a specific one of the transport streams.
Type 2-4: A plurality of programs are to be simultaneously reproduced from a specific one of the transport streams.
Type 2-5: A plurality of programs are to be simultaneously reproduced from several specific ones of the transport streams.
Type 2-6: Only a single program is to be reproduced from several specific ones of the transport streams.
(Reproduction Type 3)
A data process is required to be carried out in units of the packet data P (Pc, PAT, PMT) contained in the selected single program packet data string Pes extracted from the transport stream. Such data process includes a process of processing the program content packet data Pc, the program content management table PAT, or the program content packet data management table PMT itself, and a process of carrying out different processes on the respective pieces of packet data P.
Described specifically below are reasons why the conventional transport stream decoder cannot be applied to the above reproduction types.
In Reproduction type 1, from out of a plurality of programs simultaneously reproduced from the single transport stream TS, a user-desired specific program has to be presented to the user in a user-desired manner. In this case, it is required that a relation between each piece of program content packet data Pc mixed in the selected single program packet data string Pes or the single program packet data string Pss and the corresponding program be identifiable and manageable, and that information about the identification/management results be provided so as to be usable.
As stated above, the conventional transport stream decoder is also capable of extracting the program content packet data management tables PMT of the plurality of programs. Therefore, it is possible to know for which program the program content packet data Pc contained in the single transport stream TS is. However, the plurality of pieces of program content packet data Pc supplied to the program packet filter PCF are filtered and output based merely on their packet identifiers PID of the pieces of program content packet data Pc that compose a single specific program. Therefore, the pieces of program content packet data Pc of the programs other than the specific program cannot exist in the selected single program packet data string Pes. Accordingly, the programs corresponding to the respective program content packet data Pc and the information about the identification/management results cannot be obtained.
In Reproduction type 2, a plurality of pieces of transport streams TS each composed of pieces of packet data Ian format unique to each transport stream can be simultaneously supplied. That is, the respective stream input units can be supplied with ε types of transport streams TS1 to TSε differed in format typified by type, scheme, or supplier.
Under such circumstances, in any of Reproduction type 2-1, in which a single program is to be reproduced from each of the transport streams TS1 to TSε, Reproduction type 2-3, in which a single program is to be reproduced from a specific one of the transport streams TS1 to TSε, and Reproduction type 2-6 in which a single program is to be reproduced from several specific ones of the transport streams TS1 to TSε, it is required to identify the transport stream TS to which the program to be reproduced belongs, to identify the relation between the program content packet data Pc and the transport stream TS in the selected single program packet data string Pes or the single program packet data Pc, and to identify the format of the packet data for each of the identified transport streams TS. Such a process of identification, however, cannot be made by the conventional transport stream decoder, as described above.
Moreover, in any of Reproduction type 2-2, in which a plurality of programs are to be simultaneously reproduced from each of the transport streams TS1 to TSε, Reproduction type 2-4, in which a plurality of programs are to be simultaneously reproduced from a specific one of the transport streams TS1 to TSε, and Reproduction type 2-5, in which a plurality of programs are to be simultaneously reproduced from several specific ones of the transport streams TS1 to TSε, in order to present a user-desired program from out of the reproduced programs, what is required regarding the transport streams TS1 to TSε and the programs are the relation among all pieces of packet data P contained in the selected single program packet data string Pes and their identification information. Furthermore, the pieces of packet data P (formed in different formats) that compose different transport streams TS have to be sequentially decoded with patterns corresponding to the respective formats of the pieces of packet data P. Such a process of identification, however, cannot be made by the conventional transport stream decoder, as described above.
In Reproduction type 3, in response to a user's request, different processes may be carried out on the respective pieces of packet data P (Pc, PAT, PMT) corresponding to the programs contained in the transport stream TS. By way of example, as for one program, the program content packet data Pc corresponding to the program is simply output in sequence, and is then decoded by the AV decoder 2000C for output to a monitor. As for another program, for storage in an external storage device, a new transport stream TSr (not shown) is formed, and is then output in accordance with transfer requirements for the storage device and a peripheral device so as to contain the program content packet data Pc corresponding to that program.
In this case, in order to manage the program content packet data Pc to generate a new transport stream TSr in accordance with the transfer requirements, the above-stated identification/management information is required. This identification/management information is also required when the packet data P itself is to be processed as required, in order to specify a piece of packet data P to be processed and correctly manage the processed piece of packet data P. These requirements have to be changed in accordance with the format of the piece of packet data P to be processed. Such a process of identification, however, cannot be made by the conventional transport stream decoder, as described above.
As has been described, the conventional transport stream decoder is suitable for reproducing a single program from a single transport stream, but is not capable of identifying, for each program, the program content packet data Pc of a plurality of programs contained in a single transport stream. Moreover, even when a single transport stream is supplied, it is impossible to know which one of the transport streams TS1 to TSε that can be input to the packet data processing device is supplied. It is also impossible to know the format of the pieces of packet data that compose the currently-input transport stream TS. Therefore, it is impossible to perform desired processes on the respective pieces of packet data.
When a plurality of transport streams are supplied, in addition to the fact that the program content packet data Pc cannot be identified for each program, the transport streams cannot be distinguished, and a relation between the transport stream and the program content packet data of the program to be reproduced cannot be identified either. Furthermore, since the format of the pieces of packet data that compose the input transport stream is not known, it is impossible to perform a desired process on the pieces of packet data.
As such, the conventional transport stream decoder cannot be used for reproducing a plurality of programs or performing a desired process on the packet data, irrespectively of whether the number of input transport streams is single or plural. Also, when a plurality of transport streams are supplied, the conventional decoder cannot be used even for reproducing a single program.
Furthermore, in any of the above reproduction types, irrespectively of whether the number of transport streams is single or plural, for the purpose of carrying out processes on the respective programs reproduced from the input transport stream(s) TS, an interface corresponding to the process suited for the format of the packet data has to be provided for each packet filter. This causes various problems, such as an increase in size and structural complexity of the device, an increase in processing load, inadaptability to change in specification or process requested, and further an increase in cost.
In view of the above problems, an object of the present invention is to provide a multi-format packet data processing apparatus for identifying on a real-time basis whether pieces of packet data of different formats for each input transport stream is to be subjected to a predetermined process and, if the piece of packet data is to be subjected to the predetermined process, performing a process suitable for the format of the packet data.